package com.wanxi.test;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class MyStream {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("aaaa");
        list.add("aa");
        list.add("aaa");
        list.add("ab");
        list.add("bb");
        list.add("ab");
//        List<String> list2 = new ArrayList<>();
//        list2.add("1");
//        list2.add("2");
//        list2.add("3");
//        list2.add("3");
//        list2.add("3");
//        list2.add("2");
        /**
         * 将长度为2的元素打印出来
         * 1.遍历当前的集合
         * 2.判断长度是否为2
         * 3.将新元素存到新集合
         * 4.打印出来
         */
//        Stream<String> stringStream = list.stream().filter(new Predicate<String>() {
//            @Override
//            public boolean test(String s) {
//                return s.length() == 2;
//            }
//        });
//        Stream<String> stringStream = list
//                .stream()
//                .filter(s -> s.length() == 2)
//                .filter(s -> s.startsWith("a"))
//                .filter(s -> s.contains("b"));
//        Stream<String> limit = list.stream().limit(3);
//        Stream<String> skip = list.stream().skip(3);
//        Stream<String> concat = Stream.concat(list.stream(), list2.stream())
//                .distinct();
//        System.out.println(concat.collect(Collectors.toList()));
//        System.out.println(stringStream.collect(Collectors.toList()));
//        list.stream().forEach(new Consumer<String>() {
//            @Override
//            public void accept(String s) {
//                System.out.println(s);
//            }
//        });
//        list.stream().forEach(System.out::println);
        System.out.println(list.stream().count());
    }
}
